typescript - Typescript Type 'XX' 不可分配给类型 import("/Volumes/D/test").XX'.ts(2322)
问题描述
我创建了代码,它将覆盖类的默认配置,但我收到奇怪的错误Type 'IConfig' is not assignable to type 'import("/Volumes/D/www/js/tsc_1/test").IConfig'.ts(2322)
我不能将相同的变量 TYPE 分配给另一个变量。请检查屏幕截图
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
推荐阅读
- continuous-integration - 在竹子上自动重复失败的柏树测试
- jsf - JSF 导航菜单和内容
- python - Python Tkinter Table order 表列与拖放
- facebook - Facebook API 2.7 移除 'user_friends' 权限
- sql-server - SQL 作业步骤 - 不同的作业所有者和步骤用户
- python - 在烧瓶python中将数据帧转换为“application-json”
- google-cloud-platform - 如何使用 Google Cloud SQL 和 Cloud Storage 处理二进制文件?
- javascript - 如何将具有随机名称的 css/js/whatever 链接到 html
- slickgrid - 用于多选的光滑网格过滤器
- java - 在 spark scala 或 spark java 中选择列值的列和频率