any 可以代替任意类型,所以该方法在传入参数不是数组或者带有
length 属性对象时,会抛出异常。方法二,定义了参数类型是
Array 的泛型类型,肯定会有
length 属性,所以不会抛出异常。3. 泛型类型
泛型接口:
interface Generics_interface<T> {
(arg: T): T;
}function func_demo<T>(arg: T): T {
return arg;
}
let func1: Generics_interface<number> = func_demo;
func1(123); // 正确类型的实际参数
func1('123'); // 错误类型的实际参数
3.3 自定义类型:
Interface vs
Type alias
Interface ,国内翻译成接口。
Type alias ,类型别名。
以下内容来自:
Typescript 中的 interface 和 type 到底有什么区别
1. 相同点 都可以用来描述一个对象或函数:
interface User {
name: string
age: number
}type User = {
name: string
age: number
};
interface SetUser {
(name: string, age: number): void;
}
type SetUser = (name: string, age: number): void;
都允许拓展(extends):
interface 和
type 都可以拓展,并且两者并不是相互独立的,也就是说
interface 可以
extends type ,
type 也可以
extends interface 。 虽然效果差不多,但是两者语法不同 。interface extends interface
interface Name {
name: string;
}
interface User extends Name {
age: number;
}type extends type
type Name = {
name: string;
}
type User = Name & { age: number };interface extends type
type Name = {
name: string;
}
interface User extends Name {
age: number;
}type extends interface
interface Name {
name: string;
}
type User = Name & {
age: number;
}
2. 不同点
type










