Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 为什么我不能创建新对象并设置属性?_Typescript_Jestjs - Fatal编程技术网

Typescript 为什么我不能创建新对象并设置属性?

Typescript 为什么我不能创建新对象并设置属性?,typescript,jestjs,Typescript,Jestjs,我正在为TypeScript应用程序编写单元测试,无法定义新对象并设置属性。我的所有其他不需要对象类的测试都能正常工作,这只发生在测试期间,而不是在生产方法中使用非常相似的代码时 无法设置未定义的属性“eId” 候选者。ts export class Candidate { public eId: string; public firstName: string; public lastName: string; public email: string;

我正在为TypeScript应用程序编写单元测试,无法定义新对象并设置属性。我的所有其他不需要对象类的测试都能正常工作,这只发生在测试期间,而不是在生产方法中使用非常相似的代码时

无法设置未定义的属性“eId”

候选者。ts

export class Candidate {
    public eId: string;
    public firstName: string;
    public lastName: string;
    public email: string;
    public address: string;
    public job: {
        title: string,
        eId: string,
    };
}
import { Candidate } from '../../../src/api/models/JCandidate';

test('Parse API model to API V2', async (done) => {
    const cController = new CController(cService, log)
    const jCandidate = new Candidate();
    jCandidate.eId = '23423'; //Error here
    jCandidate.email = 'Rogers@test.com';
    jCandidate.address = '123 Test Ave';
    jCandidate.job.eId = '1235';
    jCandidate.job.title = 'Test Job Title';
    jCandidate.firstName = 'Test';
    jCandidate.lastName = 'Name';
    const kCandidate = await cController.parseJCandidateToK(jCandidate);
    expect(kCandidate.name).toBe(jCandidate.firstName + ' ' + jCandidate.lastName);
    expect(kCandidate.jobId).toBe(jCandidate.job.eId);
    done();
});
测试.ts

export class Candidate {
    public eId: string;
    public firstName: string;
    public lastName: string;
    public email: string;
    public address: string;
    public job: {
        title: string,
        eId: string,
    };
}
import { Candidate } from '../../../src/api/models/JCandidate';

test('Parse API model to API V2', async (done) => {
    const cController = new CController(cService, log)
    const jCandidate = new Candidate();
    jCandidate.eId = '23423'; //Error here
    jCandidate.email = 'Rogers@test.com';
    jCandidate.address = '123 Test Ave';
    jCandidate.job.eId = '1235';
    jCandidate.job.title = 'Test Job Title';
    jCandidate.firstName = 'Test';
    jCandidate.lastName = 'Name';
    const kCandidate = await cController.parseJCandidateToK(jCandidate);
    expect(kCandidate.name).toBe(jCandidate.firstName + ' ' + jCandidate.lastName);
    expect(kCandidate.jobId).toBe(jCandidate.job.eId);
    done();
});

我看不出在您标记的行上会出现错误,但我希望在
jCandidate.job.eId='1235;'行,因为您从未创建
jCandidate.job
子对象。尝试替换:

jCandidate.job.eId = '1235';
jCandidate.job.title = 'Test Job Title';
与: