[英]Typescript: object property type when indexed by narrowed keyof generic type
[英]How to define generic typescript type with keyof property?
我想有一个泛型类型在某些函数中使用它作为参数,但不清楚如何定义一个具有强类型属性名称的属性(示例代码片段中的specificProperties )。
type Config<T> = {
specificProperties: keyof T[],
data: T[],
}
function doSomething<T>(config: Config<T>) {
// Some logic here
}
用法:
type Test = {
code: string,
name: string,
}
const config: Config<Test> = {
specificProperties: [ 'code' ], //Typescript error here
data: [
{
code: 'a',
name: 'b'
}
]
}
doSomething(config)
Typescript 抛出错误:属性“specificProperties”的类型不兼容。 类型 'string[]' 不能分配给类型 'keyof T[]'。
似乎配置类型应该是固定的,但我不知道该怎么做。 有任何想法吗?
keyof T[]
更改为(keyof T)[]
。 括号的优先级高于keyof
运算符。
type Config<T> = {
specificProperties: (keyof T)[],
data: T[],
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.