有一个模块扩充(types/test.d.ts):
import Vue from 'vue'
declare module 'vue/types/vue' {
interface Vue {
$test: string
}
}
Run Code Online (Sandbox Code Playgroud)
并将其包含为(tsconfig.json):
// ...
"include": [
"src/**/*.ts",
"src/**/*.tsx",
"src/**/*.vue",
"tests/**/*.ts",
"tests/**/*.tsx",
"types/*.d.ts"
],
// ...
Run Code Online (Sandbox Code Playgroud)
然后,它在任何.ts文件中都能正常工作:
有人可以帮助我吗?
我有一个函数,当您输入Class name或 时Class constructor,它将返回该类的实例:
type ConstructorOf<C> = { new (...args: any[]): C; };
const ClassMap = {
'Class1': Class1,
'Class2': Class2,
};
function getInstance<Cls>(c: ConstructorOf<Cls>): Cls;
function getInstance<N extends keyof typeof ClassMap>(key: N): typeof ClassMap[N]; // It return typeof Class1/Class2
function getInstance<N extends keyof typeof ClassMap, Cls>(key: N | ConstructorOf<Cls>) {
if (typeof m === 'string') {
return CreateInstance(ClassMap[key]);
}
return CreateInstance(key);
}
Run Code Online (Sandbox Code Playgroud)
的第二个定义getInstance不是我想要的,因为它返回的是typeof Class但不是Class
我应该如何修改这部分?
typescript typescript-generics typescript-typings typescript2.0