Typescript 类型脚本类型“XX”不可分配给类型导入(“/Volumes/D/test”).XX'.ts(2322)
我创建的代码将覆盖该类的默认配置,但我发现奇怪的错误类型“IConfig”不能分配给类型“import/Volumes/D/www/js/tsc_1/test.IConfig”。ts2322 我无法将同一变量类型分配给另一个变量。请检查屏幕截图Typescript 类型脚本类型“XX”不可分配给类型导入(“/Volumes/D/test”).XX'.ts(2322),typescript,typescript-typings,typescript2.0,typescript-generics,Typescript,Typescript Typings,Typescript2.0,Typescript Generics,我创建的代码将覆盖该类的默认配置,但我发现奇怪的错误类型“IConfig”不能分配给类型“import/Volumes/D/www/js/tsc_1/test.IConfig”。ts2322 我无法将同一变量类型分配给另一个变量。请检查屏幕截图 export default interface IPlugin { setConfig<T>(config: T): T } export interface IConfig { port: number } const _co
export default interface IPlugin {
setConfig<T>(config: T): T
}
export interface IConfig {
port: number
}
const _config: IConfig = {
port: 7001
}
class Server implements IPlugin {
public config : IConfig
constructor() {
this.config = _config
}
setConfig<IConfig>(configNew: IConfig) {
this.config = configNew
// ERROR - Type 'IConfig' is not assignable to type 'import("/Volumes/D/www/js/tsc_1/test").IConfig'.ts(2322)
return configNew
}
}
我是这样修好的。请注意,我将泛型类型的定义移到了IPlugin本身,并在扩展时指定了类型:
export interface IConfig {
port: number
}
export declare interface IPlugin<T> {
setConfig(config: T): T
}
const _config: IConfig = {
port: 7001
}
class Server implements IPlugin<IConfig> {
public serverConfig : IConfig
constructor() {
this.serverConfig = _config
}
setConfig(config: IConfig) : IConfig {
this.serverConfig = config
return config
}
}
[Playground][1]
[1]: https://www.typescriptlang.org/play/?ssl=24&ssc=2&pln=1&pc=1#code/KYDwDg9gTgLgBASwHY2FAZgQwMbDgSQGEIl0EBzOAbwCg45JYAuOJAVwFsAjNGgXxo1QjeABNg2ADaYoeZKgw48%20AAqS25ZAB4AKgD5qNAM7AYxUhQAU2EmXIsdASgf9BNpEfgB9d3ZZFbCjgAXkN6ERYAdgAGaIBGVxopTCMjOABlNAA3NEQOMElgDmAUNNV1TSQtAItyA1o6BjYuSQRsOBMoHKhzOzh-XopG908oNmwYaEtHMPo4GAALBCMAOk7uwcpQn0DyRoFGkzNd612B3Znz2tn6ReW17LRNkLhfIbm4WRg2KCRX3f2riAA
嗨,阿曼,你确定你导入的是正确的吗?您能提供导入的语法吗?它应该是smth-like-import{StringValidator}from./StringValidator;你好,玛丽亚,我刚刚创建了一个演示,请检查,只需单击运行按钮,然后等待,您将看到错误谢谢,它成功了。你能解释一下我的代码不起作用的原因吗?@AmanBansal,因为这就是泛型类的工作方式