我们的 tsconfig.ts
中具有以下配置 function snake(x, y) {
// x and y coordinate of square (topleft)
this.x = x;
this.y = y;
// reference to div object 'box2'
this.boxid = "#box";
this.box = document.getElementById(this.boxid);
// attempts to move the box by args
this.move = function (speedx, speedy) {
var m = 50;
// check if the box is within the container, moves if true
if ((this.x+(speedx*m))<=150 && (this.y+(speedy*m))<=150 &&
(this.y+(speedy*m))>=0 && (this.x+(speedx*m))>=0) {
this.x = this.x + speedx*m;
this.y = this.y + speedy*m;
}
}
// called every frame to update position of the box
this.update = function () {
$("#box).css({top: snakeObj.y, left: snakeObj.x});
}
}
var snakeObj = new snake(100, 100);
var t = setInterval(s.update, 100);
然后我们可以在其他ts文件中使用更简洁的导入,如下所示:
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "src",
"paths": {
"@app/*": ["app/*"],
"@pages/*": ["app/pages/*"]
...
},
在插入项目时出现问题:
import {UrlConstants} from '@app/common/constants/url-constants';
有什么方法可以解决该问题而又不用回到使用Module '@app/common' is not listed as dependency in package.json
进行导入吗?
答案 0 :(得分:3)
您可以按照此处https://palantir.github.io/tslint/rules/no-implicit-dependencies
所述,使用白名单配置规则它看起来像这样:
tslint.json
{
"rules": {
"no-implicit-dependencies": [
true,
[
"app",
"pages"
],
"dev"
]
}
}
“ dev”选项并非真正适合您的情况,但是如果您按我喜欢的方式进行测试,则它很有用。
我个人认为规则应该更聪明,并且在某种程度上尝试解析tsconfig的路径。有时一个人有很多路径,但并不是每个人都使用NPM。 JSPM用户可能只需要禁用该规则,这很可惜,因为如果您不习惯此规则,那么该规则的动机非常好并且非常有用。
由于https://github.com/palantir/tslint/pull/4192已被合并,因此这现在应适用于@
前缀路径。在升级之前,您可能需要使用"app"
和"pages"
。