function sayName(params: {firstName: string; lastName?: string}) {
params.lastName = params.lastName || 'smith'; // <<-- any better alternative to this?
var name = params.firstName + params.lastName
alert(name);
}
sayName({firstName: 'bob'});
나는 이런 식으로 작동한다고 상상했다.
function sayName(params: {firstName: string; lastName: string = 'smith'}) {
분명히 이것이 명백한 주장이라면 다음과 같이 할 수 있습니다.
function sayName(firstName: string, lastName = 'smith') {
var name = firstName + lastName;
alert(name);
}
sayName('bob');
그리고 coffeescript에서 조건부 존재 연산자에 액세스 할 수 있습니다.
param.lastName ?= 'smith'
다음은 자바 스크립트로 컴파일됩니다.
if (param.lastName == null) {
param.lastName = 'smith';
}
if(typeof x === "undefined") { … }입니다. 그 사실을 모르는 것이 아니라 OP의 일반적인 사례를 지적하십시오.
lastName?: stringSteveFenton이 말한 것처럼 "빈 문자열, 정의되지 않은 문자열 및 null 값을 처리합니다".
params.lastName = params.lastName || 'smith';에 내가 사용하는 패턴 이있다
params.lastName = params.lastName || 'smith';은 실제로 다소 괜찮습니다. 빈 문자열, 정의되지 않은 문자열 및 null 값을 처리합니다.