联合类型具有字符和字符串类型时,vscode intellisense不起作用。
type t = 't1' | 't2';
var a: t = 't1';
type t = 't1' | 't2' | string;
var a: t = 't1';
答案 0 :(得分:1)
Typescript简化了联合和交叉点。这些简化之一是碱基类型吸收亚型。 string
是所有字符串文字类型的基本类型(例如't1'
和't2'
),这意味着就编译器而言,type t = 't1' | 't2' | string;
只是一种奇特的编写方式string
。
此GitHub issue记录了此确切问题,建议的解决方法也应为您工作:
type t = 't1' | 't2' | (string & { fromT?: any});
var a: t = 'ty'; //ok
var a: t = 't2'; //ok, with autocomplete