【发布时间】:2016-12-31 13:54:38
【问题描述】:
我想为排名项目创建自己的 TypingsdefinitelyTyped (https://github.com/maxcnunes/ranking)
我已经尝试了以下一些实现...
declare module 'ranking' {
interface RankingPlayer {
position: number
score: number
playerId: any
}
interface Ranking {
maxScore: number
branchFactor: number
players: any
find(query);
findOne(query);
setScore(player: RankingPlayer);
addPlayerPoints(player: RankingPlayer);
}
interface RankingStatic {
(config: any): Ranking;
}
var ranking: RankingStatic;
export = ranking;
}
当我尝试使用代码时
import Ranking from 'ranking'
...
console.log(Ranking) // This out '[Function: Ranking]'
const ranking = new Ranking({}) // This Error 'Cannot call a class as a function'
所以我用下面的代码再试一次...
declare module 'ranking' {
interface RankingPlayer {
position: number
score: number
playerId: any
}
export default class Ranking {
maxScore: number
branchFactor: number
players: any
constructor(config: any)
find(query)
findOne(query)
setScore(player: RankingPlayer)
addPlayerPoints(player: RankingPlayer)
}
}
并尝试使用代码
import Ranking from 'ranking'
...
console.log(Ranking) // This out 'undefined'
const ranking = new Ranking({}) // This Error 'ranking_1.default is not a constructor'
不知道应该怎么做:(
【问题讨论】:
-
我认为这不是您的打字问题,而不是您的构建过程。可以补充一下吗?
-
@SebastianSebald 我不知道什么是构建过程?
-
既然你必须将你的 TypeScript 代码转换成 JavaScript,我猜你有某种过程可以做到这一点。还是您的 IDE 中显示的错误?
标签: typescript ranking typing