Javascript 建议在Typescript中使用哪一种?类类型对象或具有多个参数的任何类型?
我不熟悉打字脚本和Javascript。我已经写了下面的代码,它工作得很好。我想了解哪一个是好的,建议在Typescript中使用。让我解释一下。当我们传递超过4个参数,比如说8个参数时,声纳会抱怨。因此,我们创建一个对象,填充所有必需的字段,并传递给函数,然后得到结果。我们还可以定义花括号内的所有字段,如下所示Javascript 建议在Typescript中使用哪一种?类类型对象或具有多个参数的任何类型?,javascript,node.js,typescript,Javascript,Node.js,Typescript,我不熟悉打字脚本和Javascript。我已经写了下面的代码,它工作得很好。我想了解哪一个是好的,建议在Typescript中使用。让我解释一下。当我们传递超过4个参数,比如说8个参数时,声纳会抱怨。因此,我们创建一个对象,填充所有必需的字段,并传递给函数,然后得到结果。我们还可以定义花括号内的所有字段,如下所示 const pType: any = {firstName: "John", lastName: "Abraham"}; 同时,我们可以定义这
const pType: any = {firstName: "John", lastName: "Abraham"};
同时,我们可以定义这样的类
export class Person {
private _firstName: string = "";
private _lastName: string = "";
// All get set methods/functions
}
请帮助我了解以上两者之间的区别,哪一个更好,以及为什么在内存使用方面。为了简单起见,我编写了示例类
export class PassNReturnMultipleParams {
public getAddress_Type1(person: Person): Address {
console.log("First Name: ", person.firstName);
// write logic to validate
const address: Address = new Address();
address.cityName = "Bangalore";
address.flatName = "#123";
address.streetName = "Richmond Road";
return address;
}
public getAddress_Type2(pType: any): any {
console.log("First Name: ", pType.firstName);
// write logic to validate
const adrsType: any = {cityName: "Bangalore", flatName: "#123", streetName: "Richmond Road"};
return adrsType;
}
public check_Type1() {
const person: Person = new Person();
person.firstName = "John";
// Set other values
const adrs: Address = this.getAddress_Type1(person);
console.log("Address City Name: ", adrs.cityName);
}
public check_Type2() {
const pType: any = {firstName: "John", lastName: "Abraham"};
// Set other values
const adrs: any = this.getAddress_Type2(pType);
console.log("Address City Name: ", adrs.cityName);
}
}
const test: PassNReturnMultipleParams = new PassNReturnMultipleParams();
test.check_Type1();
test.check_Type2();
在上面的类中,有两个函数
getAddress\u Type1()
和getAddress\u Type2()
,这两个函数在Javascript、Typescript世界中总是被推荐的。两者对我来说都很好。依我看,打字脚本中不应该使用“any”。在这种情况下,我建议您使用带有接口的普通对象:
interface PersonType {
firstName: string;
lastName: string;
}
const pType: PersonType = {
firstName: "John",
lastName: "Abraham"
};
这个问题是基于观点的,但是你需要注意一些程序性原则 请求javascript对象和类之间的内存效率会导致错误,应该避免
你需要问问自己你真正需要什么。在您的情况下,它将是一种将数据存储为单个实例的“东西”,您可以轻松地检索它。如果只是存储一些您不会经常操作的东西,那么一个简单的
对象
就满足了所有要求。其他的东西可能过于工程化。强烈建议通读一些javascript基础知识,因为你基本上要求对类系统和类型脚本进行完整的解释。我要问的是建议使用哪一个,哪一个应该是内存效率高的。我喜欢没有任何类结构的,即const pType。它叫什么名字constptype:any={firstName:“John”,lastName:“Abraham”}代码>?它看起来很精确。在您实际需要多个实例、构造函数和继承之前,请不要使用类。@Bergi,请您提供一些解释性的最佳实践,我接受它作为答案。我同意你的意见,看起来不错。在某种程度上,这在Python中也是相同的概念。如果我从您的评论中理解正确,我们应该使用这种方法const someValue:any={field1:“field value”,filed2:“field value”}
。我是对的吗?我在某种程度上同意你的看法,它只是存储了一些信息,可能并非总是这样。只想知道这个结构的名称是什么pType:any={field1:“value1”,field2:“value2”}
?@PythonLearner这种结构在javascript中被称为A。嗨,Barinbritva,我喜欢你的答案,但是javascript提供了一种方法,因此总是有必要为某些数据持有者定义一个接口吗?我很想知道这方面广为接受的最佳实践。从技术上讲,你当然可以使用“any”。但这个想法是“any”“它是为向后兼容JavaScript而创建的类型。如果你真的想从使用TypeScript中获利,我相信,你应该到处指定类型。否则,用TypeScript替换JavaScript的实际意义还不清楚。