// 数字的枚举enum Color {
Red,Green,Blue}// 默认是从0开始,逐个递增let c: Color = Color.Green;// 1enum Color {
Red =1,Green,Blue}// 可以指定开始的数字,后面也是逐个递增let c: Color = Color.Green;// 2enum Color {
Red =1,Green =4,Blue =8}// 可以全部手动指定// 字符串的枚举,后面必须都要指定,否则报错enum Sex{
male ='男',female ='女'}let sex: Sex = Sex.female;// 女enum Sex{
male ='男',female}// female必须指定,否则报错// 通过枚举的值反推映射的名字enum Color {
Red =1, Green, Blue}let colorName:string= Color[2];// Green
any type: 任意の型を示します。変数の型が明確でない場合、型チェッカーにこれらの値をチェックさせたくないが、コンパイル段階で直接チェックを通過させます。
const name:any='wangjiajia'
void 型: 他の型とは逆に、型が存在しないことを意味し、一般に戻り値のない関数に使用されます。
functionwarnUser():void{
console.log("This is my warning message");}// 声明一个void类型的变量没有么意义,因为只能赋值undefined和nullconst name: viod =undefinedconst name: viod =null
null および未定義:两者有各自的类型,默认是所有类型的子类型
let u:undefined=undefined;let n:null=null;let name:string=undefined|null
Never タイプ: 表示那些永不存在的值的类型。 Never タイプは、常に例外をスローするか、戻り値をまったく持たない関数式またはアロー関数式の戻り値の型です。never类型是任何类型的子类型,也可以赋值给任何类型,没有类型是never的子类型或可以赋值给never类型,即使是any也不可以赋值给never。
// 返回never的函数必须存在无法达到的终点functionerror(message:string):never{
thrownewError(message);}// 推断的返回值类型为neverfunctionfail(){
returnerror("Something failed");}// 返回never的函数必须存在无法达到的终点functioninfiniteLoop():never{
while(true){
}}let name:neverlet age:any=18
name = age // any类型也不可以赋值给never类型
3. 型アサーション
<type> 値 (TSX では使用できません)
let name:any="this is a string";// 将name断言成string类型let nameLength:number=(<string>someValue).length;
型としての値
let name:any="this is a string";// 将name断言成string类型let nameLength:number=(someValue asstring).length;
Variable!: 変数が null または未定義ではないことを示します
name! 断言name不为null或者undefined
4. タイプエイリアス
タイプごとに定義:
typeuser={
name:string,
age:number}// 类型扩展typeuser2= user &{
address:string}