Uma*_*Saw 3 javascript angularjs typescript
如果有关于为什么我们在类型脚本中使用尖括号 <> 的任何教程,请帮助我,例如我在这里给出了一些代码我需要解释。
export class HomePage {
constructor(public navCtrl: NavController) {
let a = this.testfunc<boolean>(4);
console.log(a);
}
testfunc<T>(s) {
return s;
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢
那些表示泛型。testfunc<T>(s){ return s; }表示testfunc接受泛型类型参数T。testfunc<boolean>(4)为该类型参数提供一个类型参数 ( boolean)。在那个例子中,它没有做任何事情,因为testfunc不使用T,但请考虑:
function foo(arg: string) {
let numbers: Array<number> = [];
numbers[0] = arg; // Error: Type 'string' is not assignable to type 'number'.
}
Run Code Online (Sandbox Code Playgroud)
声明numbers为number. 由于arg是一个字符串,你不能做numbers[0] = arg.
与之比较:
function foo<T>(arg: T) {
let numbers: Array<T> = [];
numbers[0] = arg; // Error
}
Run Code Online (Sandbox Code Playgroud)
现在,foo不知道numbers包含什么,只是它包含的任何内容都将匹配arg. 所以这两个调用都是有效的:
foo<number>(4);
foo<string>("bar");
Run Code Online (Sandbox Code Playgroud)
我在那些强调的调用中包含了类型参数,但 TypeScript 可以在大部分时间推断它们:
foo(4);
foo("bar");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1414 次 |
| 最近记录: |