- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个带有这个文件的 angular 4 项目
class DemoClass {
description!: string;
}
如果我用
构建它ng build
从我得到的项目根
ERROR in src/app/client/medisoft-client.ts(3,16): error TS1005: '=' expected. src/app/client/medisoft-client.ts(3,17): error TS1109: Expression expected.
删除 bang 运算符可以解决这个问题,所以这肯定是问题所在。错误似乎是类型脚本的版本不够高但是如果我运行
tsc --version
我明白了
Version 3.3.4000
足以支持 bang 运算符。如果我转到包含该文件的目录并只转换该文件,即移动,即
tsc --out test.js test.ts
然后它构建正常,我得到了 js 输出
所以看起来 angular 使用的是旧版本的 typescript ,但我不知道现在该去哪里解决这个问题
Package.json文件是
{ "name": "project-name", "version": "0.0.0", "license": "MIT", "scripts": {
"ng": "ng",
"start": "ng build --base-href /Angular --deploy-url /Angular/",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e" }, "private": true, "dependencies": {
"@angular/animations": "^5.2.0",
"@angular/common": "^5.2.0",
"@angular/compiler": "^5.2.0",
"@angular/core": "^5.2.0",
"@angular/forms": "^5.2.0",
"@angular/http": "^5.2.0",
"@angular/platform-browser": "^5.2.0",
"@angular/platform-browser-dynamic": "^5.2.0",
"@angular/router": "^5.2.0",
"core-js": "^2.4.1",
"rxjs": "^5.5.6",
"zone.js": "^0.8.19" }, "devDependencies": {
"@angular/cli": "1.6.5",
"@angular/compiler-cli": "^5.2.0",
"@angular/language-service": "^5.2.0",
"@types/jasmine": "~2.8.3",
"@types/jasminewd2": "~2.0.2",
"@types/node": "~6.0.60",
"codelyzer": "^4.0.1",
"jasmine-core": "~2.8.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~2.0.0",
"karma-chrome-launcher": "~2.2.0",
"karma-cli": "~1.0.1",
"karma-coverage-istanbul-reporter": "^1.2.1",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.1.2",
"ts-node": "~4.1.0",
"tslint": "~5.9.1",
"typescript": "^2.9.2" } }
最佳答案
您的 Angular 项目 typescript 版本低于您的全局版本。所以你需要像下面这样在你的 Angular 项目中安装更新版本
npm install typescript@3.3.4000 --save-dev
希望这会有所帮助!
关于angular - 即使 tsc 版本足够高,带有 bang 运算符的 Typescript 文件也不会构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55391164/
起初:我知道命令行中tsc和tsc -w的区别。这不是问题,而是一种特殊情况: 在 VS Code 的 tsconfig 中,我通过设置 "watch":true 启用了观察器。这是绝对想要的。但是现
我正在尝试为 file.ts 运行命令 tsc 以将此代码编译为 js 但我发现以下错误: tsc : File C:\Program Files\nodejs\tsc.ps1 cannot be l
我正在尝试将我的 TypeScript 项目转换为 JavaScript,但是,似乎有些不对劲。我将项目配置为通过 "module":"ES6" 解析为 ES6 模块(又名 ESM)设置,但不能解决问
我有 typescript ,并使用别名。 这是tsconfig.json的一部分 "compilerOptions": { "baseUrl": "./src", ... }, 通过设置基
我在一个项目上使用 typescript ,所有文件都可以用 tsc 正常编译,我正在使用 watch 标志来查找更改。我遇到的问题是,当我创建一个新文件时,tsc 没有获取新文件,我必须退出 tsc
当我使用 tsc --declaration 或 tsconfig.json 声明为 true 生成我的定义文件“.d.ts”时,生成的文件不包括 声明模块“我的模块”{... 这对“vscode”来
我有一个名为 test.ts 的简单 hello world 文件,其中包含以下内容: export class Hello { constructor() { console.log("
我刚刚将 TypeScript 安装为 Node.js 包,令我惊讶的是它似乎可以立即运行。但是我找不到拦截它可能生成的任何消息的方法。使用存在故意错误的 greeter.ts 文件执行以下操作 ts
我有这个: $ tsc -m amd --outFile dist/out.js lib/index.ts lib/index.ts(87,48): error TS1005: ';' expecte
我很惊讶这不在我能找到的文档中 - 但是有什么方法可以告诉 tsc 对目录及其子目录中的所有文件运行而无需经过整个 tsconfig.json 设置? 最佳答案 据我所知没有。在没有 tsconfig
我想知道是否有人知道有关发生上下文切换时 Linux 中的时间戳计数器的更多详细信息?直到现在我的观点是,TSC 值在每个时钟周期内只增加 1,无论是在内核模式还是在用户模式下都是独立的。我现在使用
使用: inline uint64_t rdtsc() { uint32_t cycles_high; uint32_t cycles_low; asm volatile ("CPUID\
我以独立于生态系统的方式编写 typescript 代码。我决定在导入中包含文件扩展名,以匹配网络和 Deno。 import xyz from "./foo.ts"; 如何让 typescript
首先,我已经准备好了this sample GitHub repository作为重现我的问题的最低要求。 我遇到了 tsc 无法将我的 TypeScript 编译为 JavaScript 的问题。
tsc 是否有任何标志使其更详细地说明它正在做什么?我找到了 --terse 和 --verbose 引用,但不确定这些是旧标志还是提议的标志,因为它们都不起作用。 例如,我想看看它正在处理哪些文件。
我是 tsconfig.json 配置的新手,但我只是想像它应该的那样将我的 src 目录编译为编译的 javascript,但它只是没有创建 outDir 包含编译代码的文件夹。 这是我的tscon
我正在尝试使用 tsc 为一些现有的 javascript 代码自动生成 typescript 声明文件。 typescript 编译器给了我一些我不明白的错误(在这种情况下为 TS9005)。是否有
我希望将单个 .ts 文件编译为标准输出,如下所示: tsc foo.ts > foo.js 这有可能吗?我想在不使用 tsconfig.json 文件的情况下控制输出的位置。 最佳答案 见 http
TypeScript 的维基百科页面提到编译器本身是用 TypeScript 编写的。 这怎么可能? TypeScript 转译为 JavaScript,而 JavaScript 通常由 Web 浏览
我正在使用 TSC ME240 打印机打印标签。 标签设计有公司标志、文字部分和条形码。 条形码和文本打印得很好,但 Logo 没有打印, Logo 是存储在打印机内存中的 .bmp 图像。 每次打印
我是一名优秀的程序员,十分优秀!