Typescript에서 확장 연산자의 이른바 맵핑(copy)을 사용할 때의 주의점

4630 단어 JavaScriptTypeScript

결론


왜냐하면 빨리 보여줘요.
실행 환경을 표시합니다.
실행 환경은 여기 있습니다.
Typescript로 모형 매핑을 하면 생각과 결과가 달라요.
유형 Ship에서 유형 AnotherShip으로 컨텐트 매핑
그것은 간단한 코드이다

코드


Sorahune.ts
// 船
interface Ship {
    id   : number
    name: string
    cap: string
    member: string
}

interface AnotherShip {
    id   : number
    name: string
    member:string
}

const sorafune: Ship = {
    id: 1,
    name: "sonofune",
    cap: "omae",
    member:"TOKIO",
}

const map: AnotherShip = { ...sorafune }


//期待としては capというプロパティははなくなっていてほしい
console.log(map)

결과


javascript 컴파일의 결과는 다음과 같습니다.
Object.assain 방법
보시다시피 전체 Object를 함께 복사합니다
cap 속성이 삭제되지 않았습니다.
Sorahune.js
"use strict";
const sorafune = {
    id: 1,
    name: "sonofune",
    cap: "omae",
    member: "TOKIO",
};
const map = Object.assign({}, sorafune);
console.log(map);
실제 콘솔 화면.

물론 매핑 목적지(AnotherShip)에서
Ship에 속성이 없으면 컴파일 오류가 발생합니다.
그럼 안녕히 계세요.

좋은 웹페이지 즐겨찾기