[Pas2js] Testing generics
warleyalex
warleyalex at yahoo.com.br
Sat Oct 26 14:30:27 CEST 2019
// ---- code ---
uses
JS, {Classes,} SysUtils, Web, Types, Math, TypInfo,
generics.collections, generics.defaults, generics.strings, Classes;
{$mode objfpc}
type
TPerson = class
private
FNome: String;
procedure SetNome(const Value: String);
public
property Nome: String read FNome write SetNome;
end;
{ TPerson }
procedure TPerson.SetNome(const Value: String);
begin
FNome := Value;
end;
procedure PersonWithoutGenerics;
var
LListaPessoa: TList; //--> Error: Generics without specialization cannot
be used as a type for a variable
LPessoa : TPerson;
LNomePessoa : String;
begin
LListaPessoa := TList.Create;
LPessoa := TPerson.Create;
try
LPessoa.Nome := 'Fabio Rubim';
LListaPessoa.Add(LPessoa);
LNomePessoa:= TPerson(LListaPessoa[0]).Nome;
WriteLn(LNomePessoa);
finally
LPessoa.Free;
LListaPessoa.Free;
end;
end;
procedure PersonWithGenerics;
var
LListaPessoas: specialize TList<TPerson>;
LPessoa : TPerson;
LNomePessoa : String;
begin
LListaPessoas := specialize TList<TPerson>.Create;
LPessoa := TPerson.Create;
try
LPessoa.Nome := 'Fabio Rubim';
LListaPessoas.Add(LPessoa);
WriteLn(LListaPessoas[0].Nome);
finally
LListaPessoas.Free;
end;
end;
begin
// Your code here
PersonWithoutGenerics;
PersonWithGenerics;
end.
----
When I run the project I have the
generics.collections.pas:612 Uncaught TypeError: Cannot set property
'undefined' of undefined
--
Sent from: http://pas2js.38893.n8.nabble.com/
More information about the Pas2js
mailing list