0
点赞
收藏
分享

微信扫一扫

2-1-5 TS日常类型

双井暮色 2022-04-30 阅读 56
linqp2ptv

基础类型

string,  number,  boolean,  null,  undefined

数组类型

Array<T>,T代表数组中的元素类型。

any/unkown/noImplictAny

let obj: any = { x: 0 };
// 后续都不会被检查.
// `any`屏蔽了所有类型检查,相当于你相信你对程序的理解是高于TS的
obj.foo();
obj(); // 运行时会报错
obj.bar = 100;
obj = "hello";
const n: number = obj;

*Implict* : 隐式

*explict* : 显式

配置项:noImplicitAny,当你不为变量声明类型时,如果noImplicitAny=false,那么它是any。如果noImplicitAny=true呢? ——报错

tsconfig.json

{
	"compilerOptions": {
		"noImplicitAny": true
	}
}

unknown

let value: unknown;

value = true;             // OK
value = 42;               // OK
value = "Hello World";    // OK

let value3: boolean = value; // Error

类型标注

`:` 用于类型标注。

let myName: string = "Alice";

let myName = "Alice" // ts 会 类型推导 myName的类型 为 string

函数

// greet : string -> number (Haskell)
function greet(name: string) : number {
  console.log("Hello, " + name.toUpperCase() + "!!");
}

greet(42) // Error
let x : string = greet("omg") // Error

匿名函数的类型

const names = ["Alice", "Bob", "Eve"];
// Array<string>

names.forEach(function (s) {
  console.log(s.toUpperCase());
});

names.forEach((s) => {
  console.log(s.toUpperCase());
});

知识点:contexture typing(根据上下文猜测匿名函数参数的类型)。

函数可选参数:

function print(arg1 : string, arg2 ? : string) {
    console.log(arg1, arg2)
}

print("Hello", "World")
print("Hello")

1

举报

相关推荐

0 条评论