为什么过滤映射键时不显示JSDoc注释?



我试图创建一个类的配置类型。我希望该类型具有可选的所有属性,但没有类的函数。类似于"Partial"但是没有函数。我让它工作,但IDE不再显示jsdoc注释。

游乐场:https://www.typescriptlang.org/play?代码/C4TwDgpgBAwg9gOwGYEsDmAeAKgPigXigG8BYAKCkqgG0AFKFBKAawhDiSiygEMBnKAAosdALpQIAD2AQEAEwEAxAK4IAxsBSIoAfigIIANwgAnKAC4otAJSidlkbVEBucgF9XZcmoA2-AbSmfNqkFFQA9ABUkeRUlJFQAFIAynJwalAAtsp8wFB8ABZwAO5QSHBmAJIAIp5xUJHhsVRgygBGPigZCDyZ0IQARAOezZRRMWFUCZVQaQgA5HnFPAh5wHBQBTzGUMAFKAKI0IywiKhoo-FNk1CtHV1lCILWxOSXbu5vZGqIuVA-yHQlnggMwgRMwQQeEIRB6fQsUAGMlyAw83l + eQB5wATAjaDwTJoeD4MODIdDiHCIJYkRAUR4gA

我有:

type Config<T> = {
[P in keyof T as (T[P] extends Function ? never : P)]?: T[P];
};
class Person {
/**
* JSdoc must show for ID;
*/
public name = "";
/**
* I don't want to have this one in Config
*/
public fn() {
}
}
const config: Config<Person> = {name : "test"};
const config2 : Partial<Person> = {name: "test"};

对于config2, jsdoc提示显示,但对于Config则没有。有人知道怎么让它工作吗?

键过滤器将丢失JSDoc。但是省略和匹克不会!

试题:

type Config<T> = Omit<T, {
[P in keyof T]: T[P] extends Function ? P : never)
}[keyof T]>

最新更新