簡體   English   中英

Typescript類方法無法識別

[英]Typescript class methods unrecognized

我在使用導入類的類方法時遇到問題。

這是我上的課

可克隆

export interface Cloneable<T> {
    clone() : T;
}

任務

import { Cloneable } from './cloneable'

export class Task implements Cloneable<Task>  {
    name: string;
    finished: boolean;

    constructor(name: string = "", finished: boolean = false) {
        this.name = name;
        this.finished = finished;
    }

    clone() : Task {
        return new Task(this.name, this.finished);
    }
}

我在另一個文件中使用Task

todoItem.component.ts

import { Component, Input } from '@angular/core';
import { Task } from '../../model/task'

@Component({
  selector: 'todo-item',
  templateUrl: './app/todoItem/todoItem.component.html',
  styleUrls: ['./app/todoItem/todoItem.component.css']
})
export class TodoItemComponent {
  @Input() name: string;
  @Input() tasks: Task[];
  currentEdited: { original: Task, toEdit: Task } = null;

  startEditing = function(task: Task) {
    this.cancelEditing();
    this.currentEdited = { original: task, toEdit: new Task(task.name, task.finished) };  // problematic line
  }

  // uninteresting code
}

錯誤

http://localhost:3000/model/task Failed to load resource: the server responded with a status of 404 (Not Found)
localhost/:14 Error: (SystemJS) XHR error (404 Not Found) loading http://localhost:3000/model/task(…)(anonymous function) @ localhost/:14

這是localhost /:14

<script>
      System.import('app').catch(function(err){ console.error(err); });
</script>

注意行
this.currentEdited = { original: task, toEdit: new Task(task.name, task.finished) };

我看到有兩種選擇可以實現我的目標

  1. this.currentEdited = { original: task, toEdit: new Task(task.name, task.finished) };
  2. this.currentEdited = { original: task, toEdit: task.clone() };

雖然,當我不使用類方法時,它可以工作,但是我不創建一個克隆this.currentEdited = { original: task, toEdit: task };

這在我之前發生過,但是我沒有找到解決這個問題的方法,所以我只訪問了類成員,但是我想應該解決這個問題。

這是我的試用angular2項目,只是了解angular2。

在文件todoItem.component.ts中,存在一個腳本引用錯誤,一對多. 在領先的道路上。

import { Task } from './../model/task'

或者如果它確實是另一個目錄,那么

import { Task } from './../../model/task'

不要這樣,因為您應該以./前綴

import { Task } from '../../model/task'

這就是為什么錯誤顯示無法找到文件的原因(404)

http:// localhost:3000 / model / task加載資源失敗:服務器響應狀態為404(未找到)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM