script error

i have this script:

var sourceObject : GameObject;
var materials : Material;
var spawn1 : Transform;
var spawn2 : Transform;
var proiettile : GameObject;


function Start () {
}

function Update () {
		
	var hit : RaycastHit;

if (Physics.Raycast (Camera.main.transform.position, Camera.main.transform.forward, hit)) {
if ( hit.collider.gameObject.tag == "enemy" ){ 
          materials.color = Color.green;
		   Debug.Log("colpito");
   		  var clone : GameObject;
   		 
   		 clone =  Instantiate( proiettile, spawn1.transform.position, transform.rotation );
   		clone.GetComponent("proiettile").target = hit.collider;
   		
   		clone = Instantiate( proiettile, spawn2.transform.position, transform.rotation );
   		   
   		  }
else { materials.color = Color.red;}

}

}

but i have this error :
Assets/New Folder/provaray.js(22,50): BCE0019: ‘target’ is not a member of ‘UnityEngine.Component’.

the proiectile script is :

var velocita : float = 100;
var danno : float = 0;
private var target : Transform;

function Start () {

}

function Update () {
transform.position = Vector3.MoveTowards(transform.position, target.position, Time.deltaTime * velocita);
}

To fixes. First on line 22, you need to use the non-string version of GetComponent.

clone.GetComponent(proiettile).target = hit.collider;

Second, ‘target’ needs to be public:

var target : Transform;

or:

public var target : Transform;

(variables are public by default in Unityscript).

The issue with the GetComponent() is that, since you are passing a string, the compiler does not know the type of the object, so it defaults to the base type ‘Component’. And the Component class does not have a ‘target’ variable. By passing the type, the compiler can figure things out.