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'});
Tôi đã tưởng tượng một cái gì đó như thế này có thể hoạt động:
function sayName(params: {firstName: string; lastName: string = 'smith'}) {
Rõ ràng nếu đây là những lý lẽ đơn giản bạn có thể làm điều đó với:
function sayName(firstName: string, lastName = 'smith') {
var name = firstName + lastName;
alert(name);
}
sayName('bob');
Và trong coffeescript bạn có quyền truy cập vào toán tử tồn tại có điều kiện để có thể làm:
param.lastName ?= 'smith'
Biên dịch nào cho javascript:
if (param.lastName == null) {
param.lastName = 'smith';
}
if(typeof x === "undefined") { … }. Không phải là bạn không biết điều đó, mà chỉ nêu ra trường hợp chung cho OP.
lastName?: stringnó chỉ có thể là như SteveFenton đã nói "xử lý các chuỗi rỗng, chuỗi không xác định và giá trị null".
params.lastName = params.lastName || 'smith';này là mẫu tôi sử dụng
params.lastName = params.lastName || 'smith';được đề xuất của bạn thực sự khá ổn - nó xử lý các chuỗi rỗng, chuỗi không xác định và giá trị null.