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';
}
귀하의 제안 솔루션'params.lastName = params.lastName || :이 기본 값에서 유추 할 수 있기 때문에 (210)는 또한, 기본 값을 추가하면, 당신은 유형 선언을 생략 할 수 있습니다 'smith';는 실제로는 꽤 괜찮습니다. 빈 문자열, 정의되지 않은 문자열 및 null 값을 처리합니다. – Fenton
@SteveFenton 그리고 아무것도 위증 해. 성의 경우에는 문제가 없지만 일반적으로 좋은 아이디어는 아닙니다. 그래서 Typescript는 기본값을'if (typeof x === "undefined") {...}'로 변환합니다. 당신은 그것을 모르는 것이 아니라 OP에 대한 일반적인 경우를 지적합니다. –
@ IngoBürk 사실이지만 'lastName ?: string'으로 인해 SteveFenton이 "빈 문자열, 정의되지 않은 문자열 및 null 값을 처리합니다"라고만 말할 수 있습니다. – AJP