【问题标题】:TypeScript can't find divTypeScript 找不到 div
【发布时间】:2017-09-22 14:32:54
【问题描述】:

尝试 Angular 演示并遇到关于 [ts] 找不到 div 的错误。

import { Component } from "@angular/core";
import { FormControl } from "@angular/forms";

@Component({
selector: "main",
template: '
    <div>
        <label for="first-name-input">First Name:</label> 
        <input type="text" [formControl]="firstNameInput"
    </div>',
})
export class AppComponent {

public firstNameInput: FormControl = new FormControl("");
public lastNameInput: FormControl = new FormControl("");

public message: string = "Hello World!";

}

使用 Core2.0 和新的 Angular 下载。以上是什么意思?

这是 tslint.json

{
"extends": "tslint:latest",
"rules": {
    "arrow-parens": true,
    "interface-name": [ true, "never-prefix" ],
    "curly": true,
    "no-var-requires": false,
    "no-string-literal": false,
    "no-console": [ false ],
    "object-literal-sort-keys": false,
    "ordered-imports": [ false ]
},
"jsRules": {
    "curly": true
},
"rulesDirectory": []

}

第一次使用 typescript 和 angular。

【问题讨论】:

  • 你应该使用反引号:`。不是单引号:'。请参阅 template literals 上的文档

标签: angular typescript asp.net-core-2.0


【解决方案1】:

这是因为您在多行模板字符串周围使用了单引号。使用单引号,它不能跨越多行。它看到这条线并认为您正在引用一个名为 div 的变量。

您可以使用 ` 字符(重记号或反引号)代替单引号,单引号定义了可以跨多行的模板字符串。请记住,它还评估像 ${...} 这样封闭的表达式,因此如果 text 是范围内的变量,则可以使用 ${text} 之类的东西,或者甚至像 ${text.toUpperCase() + 这样更复杂的东西其他文本}。

【讨论】:

    【解决方案2】:

    这是一个简单的语法错误。模板应该是一个多行字符串文字,由反引号 (`) 而非单引号括起来。

    【讨论】:

      猜你喜欢
      • 2021-01-27
      • 2016-05-15
      • 2019-08-16
      • 2021-04-19
      • 2016-09-20
      • 2016-05-23
      • 2016-03-20
      • 2016-10-24
      • 2016-11-05
      相关资源
      最近更新 更多