-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Open
Description
Flow version 0.37.4.
In the following code:
import appendQuery from 'append-query';
import { join } from 'path';
import TypeCastError from './errors/TypeCastError';
export type VersionableArgs = {
instanceId: string,
version: number
};
export default class Versionable {
instanceId: string;
version: number;
constructor(args: VersionableArgs) {
this.instanceId = args.instanceId;
this.version = args.version;
}
set instanceId(val: any) {
if (typeof val !== 'string') throw new TypeCastError('instanceId is expected to be a string');
this.instanceId = val;
}
toUrl(basePath: string) {
let x: string = join(basePath, this.instanceId);
return appendQuery(x, {
version: this.version
});
}
}
running flow check errors out with:
Potentially unsafe get/set usage. Getters and setters with side effects are potentially unsafe and disabled by default. You may opt-in to using them anyway by putting `unsafe.enable_getters_and_setters=true` into the [options] section of your .flowconfig.
Opting in to getter and setter usage still fails with:
src/Versionable.js:36
36: let x: string = join(basePath, this.instanceId);
^^^^^^^^^^^^^^^ property `instanceId`. Contravariant property `instanceId` incompatible with covariant use in
36: let x: string = join(basePath, this.instanceId);
^^^^^^^^^^^^^^^ property `instanceId`
this.instanceId is a string and join takes var args of type string… why does this error out?
I am side-stepping the issue with a // $FlowIssue comment before join usage.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels