-1
爲什麼tsc
不抱怨這行代碼:爲什麼可以在TypeScript中聲明一個'anyTextString'類型的變量?
let a: 'my text string';
,並允許a
是'my text string'
類型的?
而且......如果我們假設有人利用了隱式類型推斷,而不是'='
?而不是這個容易出錯的問題!
爲什麼tsc
不抱怨這行代碼:爲什麼可以在TypeScript中聲明一個'anyTextString'類型的變量?
let a: 'my text string';
,並允許a
是'my text string'
類型的?
而且......如果我們假設有人利用了隱式類型推斷,而不是'='
?而不是這個容易出錯的問題!
這是一種文字類型。文檔is here。例如:
type Color = 'blue' | 'red'
function showColor(c: Color) {
console.log(c)
}
showColor('blue') // OK
showColor('other') // Error
注意:由於TypeScript 2.0,文字類型是expanded to numbers and booleans(不僅是字符串)。然後,使用TypeScript 2.1,文字類型are better inferred。
而且......這不是容易出錯,如果,比方說,有人利用了隱式類型推斷的,只是把一個
':
',而不是'='
?!
在TypeScript中,需要發現:
。下面的代碼:
let a: 'my text string';
...被編譯成(這裏與目標ES6):
let a;
這就是所謂的文本類型。 –