我正在按照 official TypeScript handbook under the section "Merging Namespaces with Classes" 中的说明进行操作有关如何获取嵌套类的信息。但是看起来如果我尝试在子类定义中添加任何类型的函数声明,我会得到 TS 错误
"An accessor cannot be declared in an ambient context"
我不知道这意味着什么,也不知道为什么我在完全按照我所知道的示例进行操作时会得到这个。
export class Schedule {
// ...
}
export declare namespace Schedule {
export class MaxGracePeriod {
// Static, read-only constants in TypeScript (See: https://stackoverflow.com/a/22993349/1504964)
public static get Hourly(): number { return 12; }
public static get Daily(): number { return 12; }
public static get Weekly(): number { return 12; }
public static get Monthly(): number { return 24; }
public static get Yearly(): number { return 24; }
// ~~~~~~ => "An accessor cannot be declared in an ambient context"
}
export enum DaysOfWeek {
Sunday = 0,
Monday = 1,
Tuesday = 2,
Wednesday = 3,
Thursday = 4,
Friday = 5,
Saturday = 6,
}
}
Hourly()
、Daily()
等定义出现红色波浪线和错误。
最佳答案
从命名空间定义中删除declare
。你不需要那个。
export class Schedule {
// ...
}
export namespace Schedule {
export class MaxGracePeriod {
public static get Hourly(): number { return 12; }
public static get Daily(): number { return 12; }
public static get Weekly(): number { return 12; }
public static get Monthly(): number { return 24; }
public static get Yearly(): number { return 24; }
}
export enum DaysOfWeek {
Sunday = 0,
Monday = 1,
Tuesday = 2,
Wednesday = 3,
Thursday = 4,
Friday = 5,
Saturday = 6,
}
}
关于javascript - TypeScript 中的嵌套类抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48627788/