TypeScript FAQ All In One
TypeScript FAQ All In One
generic demo bug
interface Named {
name: string;
value: T; // <-- added
}
class MyNamed implements Named {
// name: 'mine'|undefined;
// name!: 'mine';
// name: 'mine'="mine";
name: string = 'mine';
// value: T;
value!: T; // <-- added
}
function findByName(x: Named): T {
// TODO: Implement
return undefined;
// ?
// Type 'undefined' is not assignable to type 'T'.
// 'T' could be instantiated with an arbitrary type which could be unrelated to 'undefined'.(2322)
}
var x: MyNamed = {
name: 'eric',
value: '2022',
};
var y = findByName(x); // got y: string;
https://www.typescriptlang.org/docs/handbook/declaration-files/do-s-and-don-ts.html#generics
https://github.com/Microsoft/TypeScript/wiki/FAQ#why-doesnt-type-inference-work-on-this-interface-interface-foot--
https://www.typescriptlang.org/play?#code/JYOwLgpgTgZghgYwgAgHJwLYQCYB4AqAfMgN4BQyyImEAXMgM5hSgDmA3BcgG5wA2AVzrJ87ZAHpxyXAFoZyONmw4yAXzII+cBg2QBZAJ7oseIsmAYADnwhZwu4zgLFylSVRr0A5BlAQvAD4CIMowfticblLUWACE3r4g-pES0Z7IPn5eALwARIkQuSkxwkwsIKzI2RkFXinuvILColyNQvEiYu6y8orK2GpkMMEIYMAA9iDIYSEAQkY0zgAUAB70jqaEAJT0+KRc7vgA8gAiR-QAklY2dmBcUBBgAlBTwaHh9VL4BpYoXm8QGY4LzmXQgcZgBQ6YCsagAIxsyDA4yRPz++C8ADoDlIvBjkAhxgI+NhkHCUKAmHBwMA4JBSQB3YBgAAWCimcCgcOZUE5BlRv2QDJZwAQbMJxNJ5OQwQeWnpSJR-xCgPCWKWACYAMwajVbQZkXhQZBrfQLEy4MpsYjVVweLDeaCirwAGla-CE3g1AAZda61Jwjch+dUZth5o5VlsulJWBDg-QrRV2EA
refs
?xgqfrms 2012-2020
www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!
原创文章,版权所有??xgqfrms, 禁止转载 ???,侵权必究??!