타입스크립트에서 함수 호출이나 변수에 값을 제공할 수 있는지 여부를 확인하는 것
Type...is not assignable to type...
에러
할당 가능성 개념은 복잡한 객체를 비교할 때 중요한 개념이다.
let rocker: string;
rocker = 'Joan Jett';
let rocker;
보다는 타입 애너테이션을 사용하는 것이 좋다.let rocker; // 타입: any
let firstName: string = 'Tina';
// a.ts
export const shared = 'Cher';
// b.ts
export const shared = 'Cher';
// c.ts
import { shared } from './a';
// ^^^^^^
// Error: Import declaration conflicts with local declaration of 'shared'.
export const shared = 'Cher';
// ^^^^^^
// Error: Indivisual declarations in merged declaration.
// 'shared' must be all exported or all local.
// a.ts
const shared = 'Cher';
// ^^^^^^
// Error: Cannont redeclare block-scoped variable 'shared'.
// b.ts
const shared = 'Cher';
// ^^^^^^
// Error: Cannont redeclare block-scoped variable 'shared'.
module.exports =
문법을 모두 다룬다고 되어 있다. 작년부터 자스를 배우기 시작한 나는 ESM 방식이 당연하지만 모듈을 가져오는 다른 많은 방식이 있다.
Asynchronous Module Definition(AMD)
// 의존성 배열과 팩토리 함수를 가진 define 함수 호출
define(['val1', 'val2'], function (val1, val2) {
return function () {};
};
CommonJS
require
과 module.exports
를 통해 의존성과 모듈을 정의한다. const val1 = require('./val1');
const val1 = require('./val1');
module.exports = function() {...}
ESM 모듈 형식은 ES6부터 JS에서의 기본 모듈 형식이다. 아직 모든 브라우저에서 지원되지는 않기 때문에 babel과 같은 트랜스파일러를 사용해서 ESM 포맷을 AMD나 CommonJS 포맷으로 변환해야 한다.